#pragma once

#ifndef __CORE_DebugLogger_H__
#define __CORE_DebugLogger_H__

#include "FLOW_core/namespace.h"
#include "FLOW_core/ILogger.h"

namespace CORE
{

	/*!
	 * \brief Logger that prints message in the standard output
	 *
	 * Logger that prints message in the standard output
	 */
	class CDebugLogger : public ILogger
	{
	public:
		//================================ METHODS ============================

		//! Default constructor
		CDebugLogger( );

		//! Destructor
		virtual ~CDebugLogger( );

		//! Prints log message in the standard output
		virtual bool_t OutputLogMsg( LOG_TYPE ae_log_type, const char_t* apsz_subsystem, const char_t* apsz_log_msg );

	private:
		//================================ METHODS ============================

		//! Forbid copy
		CDebugLogger( const CDebugLogger& ar_debug_logger );

		//! Forbid assignment
		CDebugLogger& operator = ( const CDebugLogger& ar_debug_logger );
	};

} //namespace CORE

#endif